package demo2;


interface IShape{
    //public int age;报错
    //接口当中的成员变量，默认为public static final修饰的，定义的时候必须初始化
    public static final int age=10;
    //以后定义的时候可以省略public static final
     int age2=10;
     //接口中的方法默认是public abstract修饰的
    public abstract void draw();

    //接口中 使用default和static修饰的方法是可以有具体实现的
    default void func(){
        System.out.println("default");
    }

    public static void staticFunc(){
        System.out.println("staticFunc");
    }
}

//当一个类实现了一个接口，那么这个类就要重写这个方法
class Rect implements IShape{
    @Override
    public void draw() {
        System.out.println("画一个矩形");
    }
}

class Triangle implements IShape {
    @Override
    public void draw() {
        System.out.println("画一个三角形");
    }
}

public class Test {
    public static void drawMap(IShape iShape){
        iShape.draw();
    }
    public static void main(String[] args) {
        //IShape iShape=new IShape();   接口不可以被实例化
        drawMap(new Rect());
        drawMap(new Triangle());
    }
}
